このガイドでは、コアサーバー (Coreserver) へのSSHおよびSFTP接続において、Bitwardenのssh-agent機能を利用する方法を解説します。
Bitwardenはパスワードマネージャーとして広く知られていますが、SSHキーの管理機能も備えており、これを利用することでSSH接続のセキュリティと利便性を向上させることができます。
通常、SSH接続には秘密鍵と公開鍵のペアが使用されます。秘密鍵は安全な場所に保管する必要があり、従来はPC上の特定のファイル(例:~/.ssh/id_rsa
)として保存されていました。
ssh-agentは、この秘密鍵をメモリ上に保持し、必要な時に自動的にSSH接続に使用してくれるプログラムです。これにより、秘密鍵を毎回指定したり、パスフレーズを都度入力したりする手間を省けます。
Bitwardenのssh-agent機能を利用するメリットは以下の通りです:
注意点: コアサーバーのコントロールパネルにある「SSH設定」で生成したRSA形式の秘密鍵をBitwardenにインポートし、ssh-agent経由で利用しようとすると、以下のようなエラーが発生して接続できません。
sign_and_send_pubkey: signing failed for RSA "**********" from agent: agent refused operation
これは、Bitwardenのssh-agentが期待する鍵の形式や処理と、コアサーバーのコントロールパネルで生成されるRSA鍵の間に互換性の問題があるためと考えられます。
また、現時点(本記事執筆時点)では、Bitwardenで新規に作成したED25519形式の公開鍵を、コアサーバーのコントロールパネル経由で直接インポートする機能は提供されていないようです。
幸いなことに、コアサーバーのSSHサーバー自体は、より安全で推奨される鍵形式であるED25519をサポートしています。コントロールパネル経由での設定はできませんが、手動で設定することでこの問題は回避可能です。
具体的な手順は、BitwardenでED25519形式のSSHキーペア(秘密鍵と公開鍵)を新規に作成し、その公開鍵をコアサーバー上の~/.ssh/authorized_keys
ファイルに追記するというものです。
以下にその詳細な手順を説明します。
手順:
Coreserver Key
, My Server ED25519
など)。ssh-ed25519 AAAA...
で始まる文字列)が表示されます。この公開鍵を後ほど使用します。手順:
もし .ssh
フォルダが存在しない場合は、ファイルマネージャーで新しく作成してください。その際、可能であればフォルダのパーミッション(権限)を 700
(drwx------) に設定します。
同様に、.ssh
フォルダ内に authorized_keys
ファイルが存在しない場合は、新規ファイルとして作成してください。その際、可能であればファイルのパーミッションを 600
(-rw-------) に設定します。
コアサーバーのファイルマネージャーでパーミッションを直接設定できない場合、後述のSSH接続が成功した後に、ターミナルから以下のコマンドで設定してください:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
ssh-ed25519 AAAA...
で始まる文字列全体)をコピーします。authorized_keys
ファイルの内容の末尾に、コピーした公開鍵を貼り付けます。既に他の公開鍵が登録されている場合は、改行して新しい行に貼り付けてください。各公開鍵は1行で記述します。Bitwardenのssh-agentが有効になっていることを確認してください。Bitwardenの設定で「SSHエージェントを有効にする」オプションがオンになっている必要があります。
手順:
Windowsの場合はWindowsターミナル、macOSやLinuxの場合はターミナルを開き、以下のコマンドを実行します。
[ユーザー名]
はコアサーバーのユーザー名、[サーバー名]
はコアサーバーのホスト名(例: example.coreserver.jp
)に置き換えてください。
PS> ssh [ユーザー名]@[サーバー名]
初めてこのキーを使用して接続する場合や、Bitwardenがロックされている場合などには、BitwardenがSSHキーの使用許可を求めるダイアログを表示します。
内容を確認し、「許可」または「Approve」をクリックします。これにより、Bitwardenに保存されている秘密鍵がssh-agent経由でSSH接続に使用されます。
正常に認証されると、サーバーにログインでき、以下のようなコマンドプロンプトが表示されます。
[ユーザー名]@サーバー名 ~]$
これで、Bitwarden ssh-agentを利用したコアサーバーへのSSH接続設定は完了です。SFTPクライアントでも、SSHキー認証(または公開鍵認証)を選択し、ssh-agentを利用する設定にすることで、同様に接続可能になります。
Windowsで人気のSFTP/FTPクライアントであるWinSCPや、SSHクライアントのPuTTYは、標準ではBitwardenのssh-agent(OpenSSH互換エージェント)を直接利用できません。これらのツールは、PuTTY付属の鍵管理エージェントであるPageantと連携するように設計されています。
しかし、winssh-pageant というツールを利用することで、Bitwardenのssh-agent (OpenSSH Agent) とPageantの間の橋渡しをすることができます。これにより、WinSCPやPuTTYからもBitwardenで管理しているSSHキーを利用できるようになります。
手順:
winssh-pageant.exe
をダウンロードします。winssh-pageant.exe
を実行します。このツールはバックグラウンドで動作し、タスクトレイにアイコンが表示される場合があります(表示されないこともあります)。特に設定画面などはありません。winssh-pageant.exe
のショートカットを配置すると便利です。Bitwardenデスクトップアプリの設定が以下の図のように「SSHエージェントを有効にする」がオンになっていることを確認してください。また、Bitwardenがアンロック状態である必要があります。
(上記画像は設定例です。実際のWinSCPのバージョンによってUIが若干異なる場合があります。)
winssh-pageant
がBitwardenのssh-agentから鍵情報を取得し、Pageantとして振る舞うため、WinSCPはPageant経由で鍵を利用します。これで、winssh-pageant
を介して、WinSCPやPuTTYなどのPageant対応クライアントでもBitwardenのssh-agentに登録された鍵を利用してサーバーに接続できるようになります。
トラブルシューティングのヒント:
winssh-pageant.exe
が実行中であることを確認してください(タスクマネージャーでプロセスの存在を確認できます)。pageant.exe
) が別途起動している場合、競合を避けるために終了させてみてください。winssh-pageant
がPageantの役割を担います。以上で、Bitwardenのssh-agentを使用して、より安全かつ便利にコアサーバーへSSH/SFTP接続する設定が完了しました。